body {
  margin: 0px;
  width: 100%;
  height: 100vh;
  overflow: hidden;

  #root {
    width: 100%;
    height: 100%;
  }
}

* {
  box-sizing: border-box;
}

// 表格样式
.table-card .ant-table-wrapper {
  width: 100%;
  height: 100%;

  .ant-spin-nested-loading {
    width: 100%;
    height: 100%;

    .ant-spin-spinning {
      width: 100%;
      height: 100%;
      max-height: unset;
    }
  }

  .ant-spin-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  .ant-table {
    width: 100%;
    flex-grow: 1;
    border-radius: 0px;
    overflow: hidden;

    .ant-table-container {
      width: 100%;
      height: 100%;
      border: 1px solid #f0f0f0;
      border-start-start-radius: 0px;
      border-start-end-radius: 0px;
      overflow: hidden;

      .ant-table-content {
        width: 100%;
        height: 100%;
        overflow: auto;
        position: relative;

        table > .ant-table-thead {
          top: 0px;
          z-index: 100;
          position: sticky;

          .ant-table-cell {
            border-start-start-radius: 0px;
            border-start-end-radius: 0px;
            padding: 8px 12px;
            white-space: nowrap;

            &:last-child {
              border-inline-end: 0px;
            }
          }
        }

        table > .ant-table-tbody .ant-table-row .ant-table-cell {
          padding: 8px 12px;

          &:last-child {
            border-inline-end: 0px;
          }

          .ant-btn.ant-btn-link {
            width: auto;
            height: auto;
            padding: 0px 4px;

            .ant-btn-icon {
              margin-right: 2px;
            }
          }
        }
      }
    }
  }

  .ant-pagination {
    $pagination_height: 28px;

    width: 100%;
    height: auto;
    padding: 16px 0px 8px 0px;
    margin: 0px;

    .ant-pagination-prev,
    .ant-pagination-item,
    .ant-pagination-next,
    .ant-pagination-total-text,
    .ant-pagination-options {
      min-width: $pagination_height;
      height: $pagination_height;
      line-height: $pagination_height;
    }

    .ant-pagination-item {
      padding: 0px 4px;
      margin: 0px 4px;
    }

    .ant-pagination-item-link {
      border-radius: 0px;
    }

    .ant-pagination-options .ant-select {
      width: 100%;
      height: 100%;

      .ant-select-selector {
        width: 100%;
        height: 100%;
        .ant-select-selection-item {
          line-height: $pagination_height;
        }
      }
    }
  }
}

.ant-table-wrapper.editor-table .ant-table > .ant-table-container .ant-table-content {
  table > .ant-table-tbody .ant-table-row .ant-table-cell {
    padding: 0px;

    .ant-form-item {
      margin: 0px;
    }
    .text {
      padding: 4px 8px;
    }
  }
}

// 对话框
.ant-modal.modal-draggable {
  width: 600px;

  .ant-modal-content {
    padding: 0px;
    border-radius: 0px;

    .ant-modal-header {
      margin-bottom: 16px;
    }

    .ant-modal-body {
      padding: 0px 24px;
      max-height: 60vh;
      overflow: auto;
    }

    .ant-modal-footer {
      padding: 16px 24px;
      margin: unset;
    }
  }
  &.table-modal {
    width: 800px;

    .ant-modal-body {
      height: 40vh;
    }
  }
}

.ant-modal.modal-draggable.ant-modal-confirm .ant-modal-body {
  padding: 24px;
}

.ant-modal.modal-draggable .ant-form {
  padding-right: 16px;

  .ant-form-item {
    width: 100%;
    .ant-form-item-label {
      width: 100px;
    }
  }

  .form-item-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

.ant-drawer .ant-drawer-body {
  overflow: hidden auto;

  .json-card {
    width: 100%;
    max-height: 400px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, 0.4);
  }
}
